package com.css.casualties.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.css.handler.GeometryTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Dbj
 * @date 2024年09月19日  16:33
 * 保存人员伤亡计算过程中产生的不同结构类型房屋格网的不同烈度不同破坏程度下的面积信息
 */
@Data
@Builder
@TableName("basic_casulaties_destroy_details")
public class GridDestoryDetails implements Serializable {

    @TableId
    private String id;

    /**
     * 地震事件id
     */
    @TableField(value = "earth_quake_id")
    private String earthQuakeId;
    /**
     * 使用的影响场的版本  一个地震可能存在多个影响场版本需要记录
     */
    @TableField(value = "influence_version")
    private Date influenceVersion;
    /**
     * 结构类型 参见StructureConstants
     */
    @TableField(value = "structure_type")
    private String structureType;
    /**
     * 烈度
     */
    @TableField(value = "intensity")
    private String intensity;
    /**
     * 基本完好面积
     */
    @TableField(value = "basic_area")
    private BigDecimal basicArea;
    /**
     * 轻微破坏面积
     */
    @TableField(value = "slight_area")
    private BigDecimal slightArea;
    /**
     * 中等破坏面积
     */
    @TableField(value = "mid_area")
    private BigDecimal midArea;
    /**
     * 严重破坏面积
     */
    @TableField(value = "serious_area")
    private BigDecimal seriousArea;
    /**
     * 毁坏面积
     */
    @TableField(value = "destory_area")
    private BigDecimal destoryArea;
    @TableField(value = "geom",typeHandler = GeometryTypeHandler.class)
    private String geom;
    @TableField(exist = false)
    private String geomText;
}
